package com.nhncorp.pleiades.shell;

import java.io.IOException;

import com.nhncorp.pleiades.protocol.LockMetaData;

public interface LockAdminService {

  public String[] listFs(String serviceId, String path) throws IOException;
  
  public LockMetaData[] listAll(String serviceId) throws IOException;
  
  public LockMetaData[] listByOwner(String serviceId, String owner) throws IOException;
  
  public LockMetaData[] listById(String serviceId, String lockId) throws IOException;
  
  public LockMetaData getMeta(String serviceId, String lockId) throws IOException;
  
  public LockMetaData[] getMetaList(String serviceId, String lockId) throws IOException;
  
  public boolean lock(String serviceId, String owner, String lockId) throws IOException;
  
  public boolean release(String serviceId, String lockId) throws IOException;
  
  public boolean releaseByOwner(String owner) throws IOException;
  
  public boolean releaseByService(String serviceId) throws IOException;
  
  public boolean releaseAll() throws IOException;
  
  public boolean create(String serviceId, String owner, String path, boolean overwrite) throws IOException;
  
  public boolean delete(String serviceId, String path, boolean recursive) throws IOException;
  
  public boolean set(String serviceId, String owner, String path, String key) throws IOException;
  
  public boolean format() throws IOException;
  
  public void close() throws IOException;
  
}
